The present invention pertains to data communications systems, but more specifically to a data compression method for use in transmitting and receiving digitized data such as audio data in a packet-based computer network to compensate for packet loss or variable packet transmission times.
In a packet-based network, such as the Internet, information to be transmitted is broken down into a sequence of bits that are grouped together (usually as a number of 8-bit bytes) into xe2x80x9cpackets.xe2x80x9d The packets are transferred from source to destination through switching stations along the best route available. The packet also includes a header that contains an identification number and source and destination addresses. Each packet may travel along a different path and arrive at the destination at different times or out of sequence, but the receiving computer is able to reassemble the original message according to the identification number. Packet switching can result in optimal use of network capacity.
The protocol used to govern the breakup of data messages into packets and manage transmission of the packets through the Internet is Transmission Control Protocol/Internet Protocol (xe2x80x9cTCP/IPxe2x80x9d). TCP/IP provides for confirmation of successful transmission of packets. The receiving end acknowledges receipt of packets and requests the sending end to retransmit any lost packets, which can result in loss of throughput.
The packets traveling through the network are subject to transmission and processing delay or latency. Transmission delay is the time required for a packet to travel from source to destination, which is determined by the speed of the media and size of the packet. Processing delay is the time required for a network device to perform switching tasks such as route determination and header changes. Variable latency (i.e., variable packet transmission times) can cause xe2x80x9cjitter,xe2x80x9d which is especially disruptive to audio communications. Jitter results when the destination does not receive packets one right after another in smooth succession, but, instead, receives packets at variable times. Audio signals are sensitive to accumulated delay or latency. If the data stream is interrupted or delayed, the reconstructed audio can sound halting or contain gaps while the receiver waits for data to continue the playback. If packets are significantly late or lost altogether, then there may even be periods of no sound in the voice played back. Packets may be lost from occurrences such as receiver buffer overflows, switch contentions, or noise.
TCP/IP introduces delay in packet transmission by confirming successful transmission and requesting retransmission of lost packets. While this delay may not be a significant problem when transmitting pure data signals (e.g., e-mail messages), the delay can unacceptably disrupt the transmission of real-time voice signals. The repercussion from latency and jitter is that packet-based networks and transport protocols that are sufficient for transmitting pure data signals are insufficient for transmission of time-sensitive audio data.
Therefore, a need exists in a packet-based network for compensating for variable packet transmission times, without using additional signal bandwidth or losing throughput, thereby providing smooth, uninterrupted transmission of audio data.
A general objective of the present invention is to provide a data compression technique for compressing analog data.
A more specific objective of the present invention, in view of the latency inherent in transmission of data in packet-based networks, is to provide a digital data compression method particularly adapted for use with Internet transmission protocols, wherein the compression method samples and digitizes analog signals during the transmission of analog information.
A further objective of the present invention is to compensate for jitter in a computer network, providing seamless, uninterrupted analog information to the destination, by providing a more reliable system for transferring real-time analog data across an unreliable network, such as the Internet.
The present invention provides such a system and method for compressing and transferring analog data in a packet-based computer network in which the times for packets to travel to the destination may vary. The present invention uses compression to lower network usage, as well as redundant and predictive data to compensate for network congestion and latency.
The present invention is implemented in computer software. No particular type of hardware is required other than the hardware used in standard computer networking and analog data capture methods. Those of skill in the art will recognize that while the system and method of the present invention may be embodied in computer software, alternative embodiments may include discrete circuitry (such as packet assembly and disassembly circuits) and microprocessor-based integrated circuits. Those skilled in the art can readily implement the present invention given the following description, diagrams, and flowchart of FIG. 6.
Packets of data containing the source analog information are sent from the sending end or source node to the receiving end or destination node. At the source, an analog-to-digital converter samples the analog signal at a rate of 11,025 samples per second, and converts the samples into 8-bit binary bytes representing, for example, volume levels when the source signal is an audio signal. The samples are collected for a period of around 250 ms to produce the primary data that is compressed into a series of 8-bit bytes and then played back at the receiving end. The primary data samples are divided into a series of segments corresponding to the direction in which the analog signal moves.
The compression method has two aspects. First, the digital information is compressed into a smaller form and placed in bytes that are assembled into packets that do not exceed a certain number of bytes. The compression algorithm uses a look-up table containing binary representations for specific amounts of change between successive sample segments. The second aspect involves time. The digital information to be compressed is collected for a limited amount of time (around 250 ms), and packets are transmitted within a certain amount of time (around every 200 ms) to reduce delay from sender to receiver.
The compressed primary data represents the actual data and the envelope the data follow. A data envelope is a xe2x80x9csnapshotxe2x80x9d of the data in time, having one of three possible directionsxe2x80x94up (rising), down (falling), and straight or level. After the primary data is collected, secondary or predictive data are collected for an additional 150 ms. The secondary data are played back only if the next packet is very late or lost. The predictive data are formed from 48 snapshots of actual data samples taken at even intervals over the 150 ms period. These snapshots are interpolated to form 48 uncompressed 8-bit bytes.
The data are formatted into packets and transmitted on a network such as the Internet. A packet is formed by appending the predictive data to the primary data and adding an IP header to the front of the packet. As each packet is formed, it is immediately transmitted to the receiving end rather than being buffered, which reduces latency. Sampling begins for the second packet approximately 200 ms after sampling begins for the first packet, resulting in 50 ms of overlapping primary data between any two adjacent packets. Following the first packet, the second and succeeding packets are transmitted approximately every 200 ms, or about 5 packets every second.
Upon reaching the destination, the packets are decompressed and reconverted to an analog signal using digital-to-analog converters. The signal is played back to the user in real time, generally following the envelope of the source analog signal to produce a representation of the original analog signal that is very close to the original signal. Compression and decompression and packetization of the data are accomplished quickly and efficiently to ensure real-time processing without loss of information. If a packet is lost or late, the redundant data and secondary data in adjacent packets enable the receiver to play back smooth, uninterrupted data.